home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / IDLIncludes / OCEMail.idl < prev    next >
Text File  |  1996-05-01  |  15KB  |  380 lines

  1. /*
  2.      File:        OCEMail.idl
  3.  
  4.      Contains:    Apple Open Collaboration Environment OCEMail Interfaces.
  5.  
  6.      Version:    Technology:    AOCE Toolbox 1.02
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __OCEMAIL_IDL__
  19. #define __OCEMAIL_IDL__
  20.  
  21. #include <somobj.idl>
  22. #include <somcls.idl>
  23.  
  24. #ifndef __FILES_IDL__
  25. #include <Files.idl>
  26. #endif
  27. #ifndef __MEMORY_IDL__
  28. #include <Memory.idl>
  29. #endif
  30. #ifndef __TEXTEDIT_IDL__
  31. #include <TextEdit.idl>
  32. #endif
  33. #ifndef __TYPES_IDL__
  34. #include <Types.idl>
  35. #endif
  36. #ifndef __DIGITALSIGNATURE_IDL__
  37. #include <DigitalSignature.idl>
  38. #endif
  39. #ifndef __OCE_IDL__
  40. #include <OCE.idl>
  41. #endif
  42. #ifndef __OCEAUTHDIR_IDL__
  43. #include <OCEAuthDir.idl>
  44. #endif
  45. #ifndef __OCEMESSAGING_IDL__
  46. #include <OCEMessaging.idl>
  47. #endif
  48.  
  49. #ifdef __SOMIDL__
  50.  
  51. #if FOR_SYSTEM7_ONLY
  52. /**************************************************************************************/
  53. /* Common Definitions */
  54. /**************************************************************************************/
  55. /* reference to a new or open letter or message */
  56. typedef long                    MailMsgRef;
  57.  
  58. /* reference to an open msam queue */
  59. typedef long                    MSAMQueueRef;
  60.  
  61. /* identifies slots managed by a PMSAM */
  62. typedef unsigned short            MSAMSlotID;
  63.  
  64. /* reference to an active mailbox */
  65. typedef long                    MailboxRef;
  66.  
  67. /* identifies slots within a mailbox */
  68. typedef unsigned short            MailSlotID;
  69.  
  70. /* identifies a letter in a mailbox */
  71. typedef SOMLargeStruct            MailSeqNum;                    /* Derived from a struct of 6 bytes in size */
  72.  
  73. /*
  74.  A MailBuffer is used to describe a buffer used for an IO operation.
  75. The location of the buffer is pointed to by 'buffer'. 
  76. When reading, the size of the buffer is 'bufferSize' 
  77. and the size of data actually read is 'dataSize'.
  78. When writing, the size of data to be written is 'bufferSize' 
  79. and the size of data actually written is 'dataSize'.
  80. */
  81. typedef SOMLargeStruct            MailBuffer;                    /* Derived from a struct of 12 bytes in size */
  82.  
  83. /*
  84.  A MailReply is used to describe a commonly used reply buffer format.
  85. It contains a count of tuples followed by an array of tuples.
  86. The format of the tuple itself depends on each particular call.
  87. */
  88. typedef SOMTwoByteStruct        MailReply;                    /* Derived from a struct of 2 bytes in size */
  89.  
  90. /*
  91.  Shared Memory Communication Area used when Mail Manager sends 
  92. High Level Events to a PMSAM. 
  93. */
  94. typedef SOMLargeStruct            SMCA;                        /* Derived from a struct of 20 bytes in size */
  95.  
  96. /**************************************************************************************/
  97. /* Value of creator and types fields for messages and blocks defined by MailManager */
  98. /*
  99. kMailImageBodyType:
  100.     format is struct TPfPgDir - in Printing.h
  101.     *    struct TPfPgDir {
  102.     *        short    pageCount;        - number of pages in the image.
  103.     *        long    iPgPos[129];    - iPgPos[n] is the offset from the start of the block
  104.     *                                - to image of page n.
  105.     *                                - iPgPos[n+1] - iPgPos[n] is the length of page n.
  106.  
  107. kMailReportType:
  108. Reports have the isReport bit set in MailIndications and contain a block of type kMailReport.
  109. This block has a header, IPMReportBlockHeader,
  110. followed by an array of elements, each of type IPMRecipientReport
  111.  
  112. Various families used by mail or related msgs
  113. */
  114. /**************************************************************************************/
  115. typedef unsigned short            MailAttributeID;
  116.  
  117. /* Values of MailAttributeID */
  118. /* Message store attributes - stored in the catalog */
  119. /* Will always be present in a letter and have fixed sizes */
  120. typedef unsigned long            MailAttributeMask;
  121.  
  122. /* Values of MailAttributeMask */
  123. typedef unsigned long            MailAttributeBitmap;
  124.  
  125. /**************************************************************************************/
  126. typedef unsigned short            MailLetterSystemFlags;
  127.  
  128. /* Values of MailLetterSystemFlags */
  129. /* letter is available locally (either by nature or via cache) */
  130. typedef unsigned short            MailLetterUserFlags;
  131.  
  132. /* Values of MailLetterUserFlags */
  133. typedef SOMFourByteStruct        MailLetterFlags;            /* Derived from a struct of 4 bytes in size */
  134.  
  135. typedef SOMLargeStruct            MailMaskedLetterFlags;        /* Derived from a struct of 8 bytes in size */
  136.  
  137. /* Values of MailIndications */
  138. typedef unsigned long            MailIndications;
  139.  
  140. /* values of the field originalInReport in MailIndications */
  141. typedef IPMMsgID                MailLetterID;
  142.  
  143. typedef SOMLargeStruct            MailTime;                    /* Derived from a struct of 8 bytes in size */
  144.  
  145. /* innermost letter has nestingLevel 0 */
  146. typedef unsigned short            MailNestingLevel;
  147.  
  148. typedef OCERecipient            MailRecipient;
  149.  
  150. /**************************************************************************************/
  151. typedef unsigned short            MailSegmentMask;
  152.  
  153. /* Values of MailSegmentMask */
  154. typedef unsigned short            MailSegmentType;
  155.  
  156. /* Values of MailSegmentType */
  157. /**************************************************************************************/
  158. typedef unsigned short            MailLogErrorType;
  159.  
  160. /* Values of MailLogErrorType */
  161. typedef short                    MailLogErrorCode;
  162.  
  163. /* Values of MailLogErrorCode */
  164. typedef SOMLargeStruct            MailErrorLogEntryInfo;        /* Derived from a struct of 84 bytes in size */
  165.  
  166. /**************************************************************************************/
  167. typedef short                    MailBlockMode;
  168.  
  169. /* Values of MailBlockMode */
  170. typedef SOMLargeStruct            MailEnclosureInfo;            /* Derived from a struct of 16 bytes in size */
  171.  
  172. /**************************************************************************************/
  173. typedef char                    OCESetupLocation;
  174.  
  175. /*
  176.  location state is a bitmask, 0x1=>1st location active, 
  177.  * 0x2 => 2nd, 0x4 => 3rd, etc.
  178. */
  179. typedef UInt8                    MailLocationFlags;
  180.  
  181. typedef SOMTwoByteStruct        MailLocationInfo;            /* Derived from a struct of 2 bytes in size */
  182.  
  183. /**************************************************************************************/
  184. /* Definitions for Personal MSAMs */
  185. /**************************************************************************************/
  186. typedef SOMLargeStruct            MailEPPCMsg;                /* Derived from a struct of 12 bytes in size */
  187.  
  188. /* Values of OCE defined High Level Event message classes */
  189. typedef SOMLargeStruct            MailTimer;                    /* Derived from a struct of 8 bytes in size */
  190.  
  191. typedef Byte                    MailTimerKind;
  192.  
  193. typedef SOMLargeStruct            MailTimers;                    /* Derived from a struct of 10 bytes in size */
  194.  
  195. typedef SOMLargeStruct            MailStandardSlotInfoAttribute; /* Derived from a struct of 14 bytes in size */
  196.  
  197. typedef OpaquePtr MSAMIOCompletionProcPtr;
  198. typedef OpaquePtr MSAMIOCompletionUPP;
  199. typedef SOMLargeStruct            PMSAMGetMSAMRecordPB;        /* Derived from a struct of 32 bytes in size */
  200.  
  201. typedef SOMLargeStruct            PMSAMOpenQueuesPB;            /* Derived from a struct of 42 bytes in size */
  202.  
  203. typedef unsigned short            PMSAMStatus;
  204.  
  205. /* Values of PMSAMStatus */
  206. typedef SOMLargeStruct            PMSAMSetStatusPB;            /* Derived from a struct of 38 bytes in size */
  207.  
  208. typedef SOMLargeStruct            PMSAMLogErrorPB;            /* Derived from a struct of 38 bytes in size */
  209.  
  210. /****************************************************************************************/
  211. typedef SOMLargeStruct            MailMasterData;                /* Derived from a struct of 52 bytes in size */
  212.  
  213. /* Values for addressedToMe in struct MailCoreData */
  214. typedef SOMLargeStruct            MailCoreData;                /* Derived from a struct of 112 bytes in size */
  215.  
  216. typedef SOMLargeStruct            MSAMMsgSummary;                /* Derived from a struct of 170 bytes in size */
  217.  
  218. /* PMSAM can put up to 128 bytes of private msg summary data */
  219. typedef SOMLargeStruct            PMSAMCreateMsgSummaryPB;    /* Derived from a struct of 40 bytes in size */
  220.  
  221. typedef SOMLargeStruct            PMSAMPutMsgSummaryPB;        /* Derived from a struct of 40 bytes in size */
  222.  
  223. typedef SOMLargeStruct            PMSAMGetMsgSummaryPB;        /* Derived from a struct of 42 bytes in size */
  224.  
  225. /****************************************************************************************/
  226. /* Definitions for Server MSAMs */
  227. /**************************************************************************************/
  228. typedef unsigned short            SMSAMAdminCode;
  229.  
  230. /* Values of SMSAMAdminCode */
  231. typedef unsigned long            SMSAMSlotChanges;
  232.  
  233. /* Values of SMSAMSlotChanges */
  234. /* kSMSAMNotifyFwdrSetupChange */
  235. typedef SOMLargeStruct            SMSAMSetupChange;            /* Derived from a struct of 8 bytes in size */
  236.  
  237. /* kSMSAMNotifyFwdrNameChange */
  238. typedef SOMLargeStruct            SMSAMNameChange;            /* Derived from a struct of 264 bytes in size */
  239.  
  240. /* kSMSAMNotifyFwdrPasswordChange */
  241. typedef SOMLargeStruct            SMSAMPasswordChange;        /* Derived from a struct of 264 bytes in size */
  242.  
  243. /* kSMSAMGetDynamicFwdrParams */
  244. typedef SOMLargeStruct            SMSAMDynamicParams;            /* Derived from a struct of 8 bytes in size */
  245.  
  246. typedef SOMLargeStruct            SMSAMAdminEPPCRequest;        /* Derived from a struct of 546 bytes in size */
  247.  
  248. typedef SOMLargeStruct            SMSAMSetupPB;                /* Derived from a struct of 44 bytes in size */
  249.  
  250. typedef SOMLargeStruct            SMSAMStartupPB;                /* Derived from a struct of 32 bytes in size */
  251.  
  252. typedef SOMLargeStruct            SMSAMShutdownPB;            /* Derived from a struct of 28 bytes in size */
  253.  
  254. /****************************************************************************************/
  255. /* Definitions for reading and writing MSAM Letters */
  256. /****************************************************************************************/
  257. typedef SOMLargeStruct            MSAMEnumeratePB;            /* Derived from a struct of 48 bytes in size */
  258.  
  259. typedef SOMLargeStruct            MSAMEnumerateInQReply;        /* Derived from a struct of 8 bytes in size */
  260.  
  261. typedef SOMLargeStruct            MSAMEnumerateOutQReply;        /* Derived from a struct of 60 bytes in size */
  262.  
  263. typedef SOMLargeStruct            MSAMDeletePB;                /* Derived from a struct of 36 bytes in size */
  264.  
  265. typedef SOMLargeStruct            MSAMOpenPB;                    /* Derived from a struct of 36 bytes in size */
  266.  
  267. typedef SOMLargeStruct            MSAMOpenNestedPB;            /* Derived from a struct of 32 bytes in size */
  268.  
  269. typedef SOMLargeStruct            MSAMClosePB;                /* Derived from a struct of 28 bytes in size */
  270.  
  271. typedef SOMLargeStruct            MSAMGetMsgHeaderPB;            /* Derived from a struct of 50 bytes in size */
  272.  
  273. /*
  274.     MSAMGetAttributesPB.buffer returned will contain the attribute values of 
  275.     the attributes indicated in responseMask, 
  276.     from the attribute indicated by the least significant bit set
  277.     to the attribute indicated by the most significant bit set.
  278.     Note that recipients - from, to, cc, bcc cannot be read using
  279.     this call. Use GetRecipients to read these. 
  280. */
  281. typedef SOMLargeStruct            MSAMGetAttributesPB;        /* Derived from a struct of 50 bytes in size */
  282.  
  283. /* attrID value to get resolved recipient list */
  284. typedef SOMTwoByteStruct        MailOriginalRecipient;        /* Derived from a struct of 2 bytes in size */
  285.  
  286. /* Followed by OCEPackedRecipient */
  287. typedef SOMLargeStruct            MailResolvedRecipient;        /* Derived from a struct of 6 bytes in size */
  288.  
  289. /* Followed by OCEPackedRecipient */
  290. /*
  291.      MSAMGetRecipientsPB.buffer contains a Mail Reply. Each tuple is a
  292.     MailOriginalRecipient if getting original recipients 
  293.                             ie the attrID is kMail[From, To, Cc, Bcc]Bit
  294.     MailResolvedRecipient if getting resolved reicpients
  295.                             ie the attrID is kMailResolvedList
  296.     Both tuples are word alligned.  
  297. */
  298. typedef SOMLargeStruct            MSAMGetRecipientsPB;        /* Derived from a struct of 48 bytes in size */
  299.  
  300. typedef SOMLargeStruct            MSAMGetContentPB;            /* Derived from a struct of 62 bytes in size */
  301.  
  302. typedef SOMLargeStruct            MSAMGetEnclosurePB;            /* Derived from a struct of 44 bytes in size */
  303.  
  304. typedef SOMLargeStruct            MailBlockInfo;                /* Derived from a struct of 16 bytes in size */
  305.  
  306. typedef SOMLargeStruct            MSAMEnumerateBlocksPB;        /* Derived from a struct of 46 bytes in size */
  307.  
  308. typedef SOMLargeStruct            MSAMGetBlockPB;                /* Derived from a struct of 60 bytes in size */
  309.  
  310. /*
  311.  YOU SHOULD BE USING THE NEW FORM OF MARK RECIPIENTS
  312.  * THIS VERSION IS MUCH SLOWER AND KEPT FOR COMPATIBILITY
  313.  * REASONS.
  314. */
  315. /* not valid for tunnel form letters */
  316. typedef SOMLargeStruct            MSAMMarkRecipientsPB;        /* Derived from a struct of 44 bytes in size */
  317.  
  318. /*
  319.  * same as MSAMMarkRecipients except it takes a mailMsgRef instead of 
  320.  * queueRef, seqNum 
  321. */
  322. /* not valid for tunnel form letters */
  323. typedef SOMLargeStruct            MSAMnMarkRecipientsPB;        /* Derived from a struct of 40 bytes in size */
  324.  
  325. /****************************************************************************************/
  326. typedef SOMLargeStruct            MSAMCreatePB;                /* Derived from a struct of 80 bytes in size */
  327.  
  328. typedef SOMLargeStruct            MSAMBeginNestedPB;            /* Derived from a struct of 68 bytes in size */
  329.  
  330. typedef SOMLargeStruct            MSAMEndNestedPB;            /* Derived from a struct of 28 bytes in size */
  331.  
  332. typedef SOMLargeStruct            MSAMSubmitPB;                /* Derived from a struct of 46 bytes in size */
  333.  
  334. typedef SOMLargeStruct            MSAMPutMsgHeaderPB;            /* Derived from a struct of 38 bytes in size */
  335.  
  336. typedef SOMLargeStruct            MSAMPutAttributePB;            /* Derived from a struct of 42 bytes in size */
  337.  
  338. typedef SOMLargeStruct            MSAMPutRecipientPB;            /* Derived from a struct of 36 bytes in size */
  339.  
  340. typedef SOMLargeStruct            MSAMPutContentPB;            /* Derived from a struct of 52 bytes in size */
  341.  
  342. typedef SOMLargeStruct            MSAMPutEnclosurePB;            /* Derived from a struct of 130 bytes in size */
  343.  
  344. typedef SOMLargeStruct            MSAMPutBlockPB;                /* Derived from a struct of 60 bytes in size */
  345.  
  346. /****************************************************************************************/
  347. typedef SOMLargeStruct            MSAMCreateReportPB;            /* Derived from a struct of 52 bytes in size */
  348.  
  349. typedef SOMLargeStruct            MSAMPutRecipientReportPB;    /* Derived from a struct of 32 bytes in size */
  350.  
  351. /****************************************************************************************/
  352. typedef SOMLargeStruct            MailWakeupPMSAMPB;            /* Derived from a struct of 34 bytes in size */
  353.  
  354. typedef SOMLargeStruct            MailCreateMailSlotPB;        /* Derived from a struct of 56 bytes in size */
  355.  
  356. typedef SOMLargeStruct            MailModifyMailSlotPB;        /* Derived from a struct of 56 bytes in size */
  357.  
  358. typedef SOMLargeStruct            MSAMParam;                    /* Derived from a struct of 1834 bytes in size */
  359.  
  360. /* ASYNCHRONOUS ONLY, client must call WaitNextEvent */
  361. /* ASYNCHRONOUS ONLY, client must call WaitNextEvent */
  362. /* ASYNCHRONOUS ONLY, client must call WaitNextEvent */
  363. /* Personal MSAM Glue Routines */
  364. /* SYNC ONLY */
  365. /* Server MSAM Glue Routines */
  366. /* SYNC ONLY */
  367. /* SYNC ONLY */
  368. /* Get Interface Glue Routines */
  369. /* Put Interface Glue Routines */
  370. /*  SYNCHRONOUS ONLY */
  371. /*  SYNCHRONOUS ONLY */
  372. /* Reports and Error Handling Glue Routines */
  373. /* MsgSummary Glue Routines */
  374. #endif
  375.  
  376. #endif /* __SOMIDL__ */
  377.  
  378. #endif /* __OCEMAIL_IDL__ */
  379.  
  380.